package com.janetfilter.core.plugin;

import com.janetfilter.core.models.FilterRule;

import java.io.File;
import java.util.List;
import java.util.Map;

/**
 * 插件配置类
 * 用于管理和存储插件的配置信息
 * 主要包括配置文件位置和解析后的配置内容
 */
public class PluginConfig {
    // 配置文件对象
    private final File configFile;
    // 配置内容映射，key为节名，value为该节包含的规则列表
    private final Map<String, List<FilterRule>> rules;

    /**
     * 创建插件配置实例
     * 
     * @param configFile 配置文件对象
     * @param rules 解析后的配置内容
     */
    public PluginConfig(File configFile, Map<String, List<FilterRule>> rules) {
        this.configFile = configFile;
        this.rules = rules;
    }

    /**
     * 获取配置文件对象
     * 
     * @return 配置文件对象
     */
    public File getConfigFile() {
        return configFile;
    }

    /**
     * 获取指定节的规则列表
     * 
     * @param section 节名
     * @return 规则列表，如果节不存在则返回null
     */
    public List<FilterRule> getSection(String section) {
        return rules.get(section);
    }

    public Map<String, List<FilterRule>> getData() {
        return rules;
    }
}
